Enterprise Version
absurdly complex